Generation of task records based on context of task generation request

ABSTRACT

In an embodiment, a data processing method comprises a first computer obtaining access to a digitally stored content item, the content item being stored with content item metadata identifying one or more of a creator of the content item, a title of the content item, description of the content item, content type of the content item, sharing settings of the content item, a taxonomy of the content item, or a category type of the taxonomy of the content item; receiving, at the first computer, a request to generate a task related to the content item; generating and storing a task record based, at least in part, on the content item metadata, the task record comprising an identifier of the task and the identifier of the content item; and causing display, on a second computer, a graphical representation of the task based, at least in part, on the task record.

BENEFIT CLAIM

This application claims the benefit under 35 U.S.C. § 119 of priorprovisional application 62/525,641, filed Jun. 27, 2017, the entirecontents of which are hereby incorporated by reference as if fully setforth herein.

FIELD OF DISCLOSURE

The present disclosure generally relates to creating, storing, anddisplaying task items based on a context of a request to generate thetask item. The disclosure relates more specifically to improvedtechniques for association of comment record data or content itemmetadata with a generated task.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

Computer-based systems and applications permit playing videos andentering comments on the videos. For example, the YouTube serviceenables registered users to create and store comments that areassociated with stored videos. However, current methods for generatingaction items based on video comments are insufficient. For instance, ifa video comment provides an insight into an action for a user to take,there is no way for the commenter or the video author to generate a taskfor acting upon that method. The user would have to open up a separateapplication to generate tasks and reminders.

Additionally, there is no adequate means for automatically generatingelements of a task based on comments or content items. Thus, the numberof actions required by a computing device to generate tasks may beincreased as there is no way to retrieve data based on the context of arequest to generate a task.

Thus, there is a need for a system which can generate task records whichinclude data retrieved from a comment record or content item metadata.

SUMMARY

The appended claims may serve as a summary of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 illustrates an example networked computer system with which anembodiment may be implemented.

FIG. 2A illustrates example data sources and example database records.

FIG. 2B illustrates an example data processing method according to anembodiment.

FIG. 3 illustrates an example screen display of a graphical userinterface showing a video player window, options for generatingcomments, and options for generating task records.

FIG. 4 illustrates an example display of a graphical user interfacedepicting generated task records and task record information.

FIG. 5 illustrates an example display of a graphical user interfacedepicting options for completing a task with portions of the interfaceprepopulated based on a comment record from which the task record wascreated.

FIG. 6 illustrates an example display of a graphical user interfacedepicting options for completing a task comprising options forspecifying an identifier of a taxonomy.

FIG. 7 illustrates an example display of a graphical user interfacedepicting options for completing a task comprising options forspecifying sharing access controls for the task.

FIG. 8 illustrates an example display of a graphical user interfacedepicting options for completing a task comprising suggested categorieswithin a taxonomy.

FIG. 9 illustrates an example computer system with which an embodimentmay be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

1.0 General Overview

The disclosure encompasses various embodiments including those of thefollowing enumerated clauses:

1. A data processing method comprises a first computer obtaining accessto a digitally stored content item, the content item being stored withcontent item metadata identifying one or more of a creator of thecontent item, a title of the content item, description of the contentitem, content type of the content item, sharing settings of the contentitem, a taxonomy of the content item, or a category type of the taxonomyof the content item; receiving, at the first computer, a request togenerate a task related to the content item; generating and storing atask record based, at least in part, on the content item metadata, thetask record comprising an identifier of the task and the identifier ofthe content item; causing display, on a second computer, a graphicalrepresentation of the task based, at least in part, on the task record;wherein the method is performed using one or more processors.

2. The method of claim 1, further comprising: storing, at the firstcomputer, a comment record comprising an identifier of the content itemand comment input data; causing displaying, on a third computer, thecontent item and a comment item comprising the comment input data and anoption to generate a task from the comment item; receiving a selectionof the option to generate a task from the comment item and, in response,generating the task record, wherein the task record is further generatedto comprise the comment input data based, at least in part, on theselection of the option to generate the task from the comment item.

3. The method of claim 2, further comprising: storing, in the commentrecord, an identifier of a taxonomy for the comment item; in response tothe identifier of the taxonomy for the comment item being stored in thecomment record, storing the identifier of the taxonomy for the commentitem in the task record.

4. The method of claim 3 wherein the taxonomy is any of a framework anda rubric configured for use in evaluating an effectiveness of aneducator.

5. The method of claim 2, further comprising: storing, in the commentrecord, a category type of a taxonomy for the particular comment item;in response to the category type of the taxonomy for the particularcomment item being stored in the first record, storing the category typeof the taxonomy for the particular comment item in the task record.

6. The method of claim 2, further comprising: determining that thecomment record does not comprise data identifying a category type of ataxonomy for the particular comment item; identifying a second commentrecord comprising an identifier of the content item and a particularcategory type of a taxonomy for the second comment item; in response tothe comment record not comprising data identifying a category type of ataxonomy for the particular content item, storing the particularcategory type for the second comment item in the task record.

7. The method of claim 2, wherein generating the task record comprises:executing one or more rules to identify data from one or more of thecontent item metadata or the comment record for populating one or morefields in the task record; populating the one or more field in the taskrecord with the identified data; manipulating the data in the one ormore fields for display in the graphical representation of the task onthe second computing device or for storage in the task record.

8. The method of claim 7: wherein executing the one or more rules toidentify data from one or more of the content item metadata or thecomment record comprises: determining whether the comment recordcomprises a category type of a taxonomy for the particular comment item;in response to determining that the comment record comprises a categorytype, selecting the category type from the comment record for a titledata field of the task record; in response to determining that thecomment record does not comprise a category type of a taxonomy,determining whether the content item metadata comprises a category typeof a taxonomy for the particular content item; in response todetermining that the content item metadata comprises a category type,selecting the category type from the content item metadata for the titledata field; in response to determining that the content item metadatadoes not comprise a category type, selecting a title of the content itemfrom the content item metadata as for the title data field; whereinmanipulating the data in the one or more fields comprises generating atitle based on the title data field and a source of data in the titledata field.

9. The method of claim 2, further comprising: causing displaying, on thesecond computer, a task generation interface comprising a plurality ofeditable options; prepopulating one or more of the plurality of editableoptions with the comment input data and the identifier of the contentitem; receiving additional task input data and a request to generate thetask from the second computer and, in response, generating and storingthe task record, the task record additionally comprising the additionaltask input data.

10. The method of claim 9, further comprising: determining that thecomment record does not comprise data identifying a category type of ataxonomy for the particular comment item; identifying a plurality ofsecond comment records comprising an identifier of the content item,comment input data for a plurality of second comment items, and aplurality of taxonomies or category types of a taxonomy for theplurality of second comment items; displaying, in the task generationinterface, a plurality of selectable options, each of whichcorresponding to a taxonomy of the plurality of taxonomies or categorytype of the plurality of category types of the taxonomy; receiving aselection of a particular selectable option corresponding to aparticular taxonomy and category type and, in response, storing thetaxonomy and category type of the taxonomy for the particular commentitem in the task record.

11. The method of claim 2, wherein receiving the comment input datacomprises any of text, image, a video resource or video file, or anaudio resource or audio file.

2.0 Structural and Functional Overview

FIG. 1 illustrates an example networked computer system with which anembodiment may be implemented.

In an embodiment, a first computer 102 is coupled to one or more secondcomputers 120 directly or indirectly via one or more networks 104. Ingeneral, first computer 102 acts as an application server and the secondcomputers 120 are clients. For purposes of illustrating a clear example,a limited number of second computers 120 are shown in FIG. 1, but inother embodiments an arbitrary number of second computers may be used.Network 104 broadly represents one or more of a LAN, WAN, internetwork,or internet and may include the public internet.

Computer 120 executes or hosts a browser 130, which may display one ormore static and/or dynamic HTML documents and other data that thebrowser is capable of receiving over a protocol such as HTTP andrendering in a display unit of the computer 120. In an embodiment, asfurther described in other sections herein, browser 130 receives HTMLdocuments and related data from computer 102 and renders a player window126 in a display unit of the computer 120. In an embodiment, a lineargraphical timeline 128 is also rendered in the display unit near theplayer window 126.

Computer 120 also is coupled to content item storage 122, which containsa content item 124. Content item 124 may include an image, a set ofimages, textual data such as text documents, audio data, such as apodcast, audiovisual data, and/or a set of content items, such as abundle of video programs. In various embodiments, content item storage122 is locally coupled to computer 120, or the content item storage iscoupled to the network 104 and may not be owned or operated by the owneror operator of the computer 120. For example, content item storage 122could be a video storage site that is accessible via the public internetand located in a third party data center, cloud service provider, orpart of a third party commercial service. Content item storage 122 alsocould be owned, operated, managed or maintained by an institution, suchan enterprise, a government entity such as a school district or countyboard of education, or any other suitable entity. In some embodiments,content item storage 122 may be co-located with computer 102, and ownedor operated by the same entity that controls the computer 102.

Computer 102 comprises, in one embodiment, an HTTP server 106 andstorage 108 coupled to a presentation control unit 116. A commentprocessing unit 110, task processing unit 112, and taxonomy processingunit 114 are coupled to the presentation control unit 116. In anembodiment, the HTTP server 106 is configured to serve static and/ordynamic HTML documents, and other content or data that can be servedover HTTP, via network 104 to a compatible client such as browser 130 ofcomputer 120. Storage 108 comprises a relational database, objectdatabase, and/or file server and/or other data repository for files anddata that are used transiently or persistently by the other elements ofcomputer 102.

In an embodiment, the comment processing unit 110 is configured toreceive comment types and comment text, or other comment data items,associated with comments on a content item, such as content item 124 andto associate and store the comment types and comment text in storage 108in a record that identifies the content item program. Specifictechniques for performing these functions are further described in othersections herein.

In an embodiment, the task processing unit 112 is configured to generatetask records based on content item metadata and/or comment records.Specific techniques for performing these functions are further describedin other sections here.

In an embodiment, taxonomy processing unit 114 is configured to manageone or more taxonomies, each having a plurality of categories, and toreceive taxonomy input that identifies a taxonomy and a category withwhich the content item 124 is associated. Specific techniques forperforming these functions are further described in other sections here.

In an embodiment, presentation control unit 116 is configured to controlinteractions of the computer 120 with other elements of computer 102 andto implement applications, services, or features of a video programcommenting service. For example, presentation control unit 116 may beconfigured to manage user accounts, receive and cause authentication ofuser security credentials, receive and store metadata relating toparticular videos, control the taxonomy processing unit 114 to obtain adefinition of one or more taxonomies and categories for association withthe content item 124, control the comment processing unit to respond torequests to associate user comments with records in the storage 108, andcontrol the task processing unit 112 to respond to requests to generatetasks and to obtain, process, and/or manipulate content item metadataand/or comment data for use in generating the tasks. Specific techniquesfor performing these functions are further described in other sectionshere.

In an embodiment, each of the processes described in connection with thefunctional units of FIG. 1 may be implemented using one or more computerprograms, other software elements, and/or digital logic in any of ageneral-purpose computer or a special-purpose computer, while performingdata retrieval, transformation and storage operations that involveinteracting with and transforming the physical state of memory of thecomputer. The disclosure herein is directed to computer implementationsof the processes, functions and functional units described herein, andthe disclosure is not intended to preempt the use of other practicalimplementations of the processes and functions herein using means otherthan computers.

FIG. 2A illustrates example data sources and example database records.In an embodiment, as outlined above and as described in more detail inother sections herein, a database record 202 is formed on the basis ofobtaining or receiving information about a content item 124, commenttype selection 216, comment input 218, a taxonomy selection 220, and acategory selection 222 indicating a particular category within ataxonomy identified by the taxonomy selection. Using the processes thatare described in more detail herein, data values from these inputsources are associated in the database record 202. In one embodiment,the record 202 comprises a row in a relational database, but in otherembodiments, the data shown in FIG. 2A may be configured using aplurality of tables, in a graph, or in other forms of datarepresentation.

In an embodiment, database record 202 comprises and associates a contentidentifier 204, comment type 206, comment input 208, time value 210, andcategory 214; optionally, the record also may include an identifier of ataxonomy 202. In one embodiment, the content identifier 204 uniquelyidentifies a particular content item 124. The particular technique usedto generate content identifier 204 is not critical; in one embodiment,for example, the presentation control unit 116 is configured with a baseor seed identifier value, which is increased monotonically as usersregister content items in the system, as further described.

In an embodiment, comment type 206 specifies a particular comment typefrom among a plurality of available comment types. The particularavailable comment types may vary in various embodiments. For example, inan embodiment in which the system is configured to receive commentsabout a video showing a presentation, comment types may include:Questions, Suggestions, Strengths, Notes. Other embodiments that areused for other purposes may have other comment types.

In an embodiment, comment input 208 comprises text expressing a commentabout a particular scene, topic, location, or occurrence within thecontent item 124. In some embodiments, comment input may include richformatted text, or text with encodings that are used in rendering thecomment according to particular type fonts or styles. In someembodiments, comment input at block 218 may comprise a video file, anaudio track, or other audiovisual input that the user records at thetime of commenting on another video, or obtains from storage andassociates with the record 202. In an embodiment, the time value 210indicates a playback time point in the content item 124 with which thecomment input 208 is associated. The time value 210 may be automaticallycalculated in response to an input signal from the user, as furtherdescribed herein, or entered explicitly.

In an embodiment, the category 214 identifies a category in a taxonomy.For example, in educational applications, the taxonomy may be aframework or rubric specifying good education practices, which has beendeveloped by a particular organization or entity, and the techniquesherein enable coding videos against such frameworks or rubrics to helpmeasure conformance or performance in relation to the specifiedframework or rubric. In an embodiment, a name of the taxonomy andpermitted categories are stored in storage 108. In some embodiments, therecord 202 also may include an identifier of the taxonomy 212, or theremay be a single implicit taxonomy.

FIG. 2B illustrates an example data processing method according to anembodiment. In an embodiment, each of the functions described inconnection with the blocks of FIG. 2B may be implemented using one ormore computer programs, other software elements, and/or digital logic inany of a general-purpose computer or a special-purpose computer, whileperforming data retrieval, transformation and storage operations thatinvolve interacting with and transforming the physical state of memoryof the computer. The disclosure herein is directed to computerimplementations of the processes, functions and functional unitsdescribed herein, and the disclosure is not intended to preempt the useof other practical implementations of the processes and functions hereinusing means other than computers.

For purposes of illustrating a clear example, the description of FIG. 2Bis given with reference to FIG. 1, FIG. 2A. Other embodiments may beimplemented in other contexts. Additionally, FIG. 2B represents oneexample method comprising the generation of a task record based on acomment record. In other embodiments, the task record may be generatedbased on content item metadata without the comment record.

At block 250, the process obtains access to a digitally stored contentitem. The digitally stored content item may include an image, a set ofimages, textual data such as text documents, audio data, such as apodcast, audiovisual data, and/or a set of content items, such as abundle of video programs. The digitally stored content item may includecontent item metadata which comprises data describing the content item.The content item metadata may include one or more of a title of thecontent item, an identifier of the creator of the content item, anidentifier of a taxonomy, a category within a taxonomy of the contentitem, or any other data relating to the content item.

In an embodiment, block 250 involves receiving user input specifying anetworked storage location of a particular video. The input may specifya URL for a video that is available in an online resource, and block 250may involve accessing the URL and downloading a copy of the video oractivating streaming delivery of a video stream that represents theprogram.

At block 252, the process receives comment input data for a comment itemon the content item. The comment input data may include any of text, avideo resource or video file, or an audio resource or audio file. Thecomment input data may be received through an editable text box, anuploaded file, or selection of one or more options on a graphical userinterface. In an embodiment, the comment input data is received withcomment type data indicating a type of comment. The comment type datamay further define the comment, such as indicating whether the commentis a suggestion, question, or strength. Selection of a comment type maybe performed through input indicating selection of a tab in a graphicaluser interface, a radio button, or other GUI widget that specifies atype of comment to use for a comment.

The comment input data may additionally be accompanied by a taxonomyselection, a category selection within the taxonomy, and/or inputidentifying location within the content item with which the comment isto be associated. Taxonomy data, such as the taxonomy and/or category ofthe taxonomy, may be supplied at the time of creation of the comment,implicitly supplied through connection to the content item, and/orsupplied after the creation of the comment.

Location input may be specified as a location within an image and/ortime within audio or audiovisual content. For example, receivinglocation input may involve the browser 130 detecting input from akeyboard, pointing device, or touchscreen of the second computer 120 ata position associated with pausing the video or signaling a comment. Inone embodiment, the input is a click, tap, touch or other signal on theplay head icon of the timeline 128; this input means, in effect, “Entera comment for this point in the video.” Alternatively, the input may bea click, tap, touch or other signal indicating selection of a button,icon or other user interface widget associated with a prompt such as“Leave comment now” or a similar message. In an embodiment, receivinglocation input comprises receiving a time value indicating a playbacktime in the video at which the input was received; the time value may bedetermined by the browser-executable code at the second computer andprovided in a response or post, using HTTP or another protocol, back tothe first computer. Location input may additionally include physicallocations on visual content, such as a video or image. For instance, acomment may be received with input drawing a circle around a section ofa video during a particular time period of the video. The location inputmay include the location of the drawn circle as well as the particulartime period of the video.

At block 254, the process generates and stores a comment recordassociating the identifier of the video program and the comment text.Optionally, the comment type, time value, taxonomy, and/or category typeof the taxonomy also may be stored in the record at block 254. In someembodiments, block 254 may comprise receiving a recording of audio orvideo representing a comment, rather than text, and associating therecording with the video program. For example, in some embodiments block252 may be arranged to cause a graphical user interface to prompt orpermit the user to record video via an attached webcam and microphone,store and upload the video, and then associate the new video as anannotation related to a specific moment in time with respect to thevideo program.

At block 256, the process receives a request to generate a task from thecontent item or comment item. Receiving the request to generate the taskmay comprise receiving a selection of a graphical element on or about adisplayed content item or on or about a displayed comment item. In anembodiment, a graphical user interface element for generating a task maybe displayed through a graphical user interface regardless of whether acontent item or comment is being viewed. The process may determine, uponreceiving a selection of the graphical user interface element forgenerating the task, whether a content item is being viewed. If theprocess determines that the content item is being viewed, the processmay generate the task record using content item metadata. Additionallyor alternatively, if the process determines that a comment item is beingviewed, the process may generate the task record using the commentrecord.

At block 258, the process generates and stores a task record comprisingan identifier of the task, an identifier of the content item, and one ormore additional elements from the content item metadata or the commentrecord. For example, if the process receives a request to generate thetask record from a comment item, the process may include data from thecomment record in the task record. The data may include the commenttype, the comment input, the time value, the taxonomy, and/or thecategory type of the taxonomy. The process may additionally oralternatively use content item metadata to generate the task record. Forexample, the process may identify a video title, an author of the video,a taxonomy for the video, and/or a category type of the taxonomy for thevideo and store the identified data in one or more fields of the taskrecord.

In an embodiment, the process further comprises executing one or morerules to identify data from one or more of the content item metadata orthe comment record for populating one or more fields in the task record.For example, when generating a title for the task record, the processmay first determine whether a comment record includes an identifier of acategory type of the taxonomy. If the comment record includes a categorytype of the taxonomy, the process may use the category type of thetaxonomy from the comment when creating the title for the task recordregardless of whether the content item includes a category type of thetaxonomy. If the comment record does not include a category type of thetaxonomy, the process may determine whether the content item metadataincludes a category type of the taxonomy. If the content item metadataincludes a category type of the taxonomy, the process may use thecategory type of the taxonomy from the content item when creating thetitle for the task record. If the content item metadata also does notinclude a category type of the taxonomy, the process may use the contentitem title when creating the title for the task record.

The task record may additionally include a task identifier 226 and auser identifier 228. The user identifier may comprise an identifier ofthe creator of the content item and/or an identifier of the user thatrequested generation of the task. The task identifier may include atitle for the task and/or a unique identifier of the task generated bythe computer 102 in response to receiving the request to generate thetask.

At block 260, the process causes displaying, on a second computer, agraphical representation of the task based, at least in part, on thetask record. In an embodiment, the process causes displaying of the taskon a computing device of a user for whom the task was created. Forexample, if the task was created based on video content, the graphicalrepresentation of the task may be displayed on a computer of an authorof the video content.

Displaying the task may comprise displaying one or more task fields thatare prepopulated based on one or more of the content item metadata orthe comment record. Additionally or alternatively, data in one or morefields of the task may be manipulated for display of the graphicalrepresentation of the task. For example, the process may include a firstdisplay of a field stating “Working on Category type of the taxonomy Afrom Taxonomy Name” if the title is being generated from a category typeof the taxonomy, but include a display stating “Relates to Comment byUserName on VideoName” if the title is being generated from the contentitem metadata and the task was generated from a comment item.

In an embodiment, the graphical representation of the task comprises agraphical representation of an editable task proposal. For example, theprocess may cause display of a graphical user interface comprisingeditable text boxes, drop-down menus, selectable options, and/or optionsfor uploading content. One or more elements of the graphical userinterface may be prepopulated based on the content item metadata and/orcomment metadata. For example, the process may input comment text intoan editable text box for a description field in the graphical userinterface. If the task is not related to a comment, the process mayleave the description field blank and/or determine text for the editabletext box based on available data. For instance, if the content itemmetadata includes a category type of the taxonomy, the editable text boxmay include text stating “Task relating to Category type of the taxonomyA on VideoName proposed by UserName.”

3.0 Example Graphical User Interface 3.1 Options for Generating a Task

FIG. 3 illustrates an example screen display of a graphical userinterface showing a video player window, options for generatingcomments, and options for generating task records. While FIG. 3 depictsan interface for displaying video content, the systems and methodsdescribed herein may be performed with respect to different contentitems, such as audio or image items. Additionally, the systems andmethods described herein may be applied to a set of content items, suchas an interface displaying a plurality of video content items. Videoplayback interface 300 comprises video title 302, author data 304, videoplayback screen 306, and playback timeline 308. Video title 302 andauthor data 304 may be stored as content item metadata for a particularvideo and supplied to the video playback interface 300 when theparticular video is selected. Playback timeline 308 comprises one ormore playback controls and a timeline corresponding to a timeline of thevideo being displayed on video playback screen 306.

Video playback interface additionally includes three depicted locationsincluding options for generating a task, including comments 310,timeline comment 320, and non-timestamped comment 330. Other embodimentsmay include other locations for generating a task. For example, aplatform interface may include one or general elements, such as one ormore menu options, and specific elements such as unique elements for aparticular page or displayed content items. An option for generating atask may be included in the general elements of the platform interface.When the option is selected, the computer providing the platforminterface may determine whether a content item is being displayedthrough the interface. If a content item is being displayed through theinterface and/or is selected on the interface, the computer may utilizemetadata from the content item in creating the task. Methods of creatingthe task are described further herein.

Comments 310 comprise one or more comments related to the videodisplayed on the video playback screen 306. Each comment may be relatedto a comment record, the comment record including comment input data,such as comment text, images, audio, or video data, commenteridentification data, such as a username, a selected category of ataxonomy, a comment type, and/or a timestamp of the comment. In anembodiment, an option for generating a new comment is displayed on theinterface, such as above existing comments or on an existing comment.

When a request to create a new comment is received, the interface maydisplay one or more comment creation options. The comment creationoptions may include options to identify a comment type for a comment,options to select a taxonomy or category type of the taxonomy for thecomment, options for specifying a location within a content item towhich the comment relates, such as a physical location in an image or atemporal location in an audio or visual content item, and/or options forgenerating and/or uploading comment input data. The comment creationoptions may further comprise an option to generate a task from thecomment. For example, in FIG. 3, a comment is in the process of beingcreated, the creation options including an editable textbox forinserting comment text, a drop-down menu for specifying a category typeof the taxonomy, and a selectable option for proposing the comment as acommitment. A commitment, as used in FIG. 3-8, refers to a task. Whenthe computer receives data indicating completion of the comment, thecomputer may generate a comment record. If the selectable option forproposing the comment as a commitment is selected, the computer mayadditionally create a task record using data from the comment recordand/or data used to create the comment record.

In an embodiment, the option to propose the comment as a commitment maybe selectable from a comment that has already been created. For example,interface 300 may include a plurality of comments 310. In response toreceiving a selection of a comment, the computer may cause display of anoption to propose the comment as a commitment. In response to aselection of the option to propose the comment as a commitment, thecomputer may generate and store a task record using comment data.

In an embodiment, comments may be related to timestamps in the contentitem to which they relate. For example, in FIG. 3, each of the twodisplayed comments relates to a playback time of a corresponding videothat displays on video playback screen 306. Two vertical lines on thetimeline 308 indicate timestamps to which the two comments correspond.The different shades of the vertical lines correspond to different typesof comments. For example, the lighter shade of the first comment andfirst timestamp correspond to a Question comment type while the darkershade of the second comment and second time stamp correspond to theSuggestion comment type.

In an embodiment, comments and tasks may be generated based on aselection of a timestamp in the playback timeline. Timeline comment 320comprises a comment generation interface displayed in response to aselection of a timestamp on the playback timeline. The computer mayconvert the selected location on the playback timeline to a time withinthe video and store data identifying the time within the video with thecomment record created from timeline comment 320. The interface oftimeline comment 320 comprises options for identifying a comment type,inserting comment input data, selecting a category type of the taxonomy,and proposing the comment as a commitment. The computer may generate acomment record comprising the timestamp, the comment category, thecomment input data, and/or the selected category type of the taxonomy.If the option to propose the comment as a commitment is selected, thecomputer may additionally generate a task record.

While timeline comment 320 depicts the creation of a task during thecreation of the comment, the timeline may additionally be used togenerate a task from an already created comment. For example, thecomputer may detect a location of a cursor on the video playbackinterface. When the location of the cursor overlaps with a vertical baron the timeline that is associated with a comment, the computer maycause display of the comment in a similar manner as timeline comment 320along with an option to propose the comment as a commitment. In responseto a selection of the option to propose the comment as a commitment, thecomputer may generate a task record using data from the comment recordassociated with the comment.

Non-timestamped comment 330 comprises an interface for generatingoverall comments on the displayed content item. Unlike the othercomments, the non-timestamped comment 330 comment is not related to aparticular timestamp. While the interface for non-timestamped comment330 only includes an editable textbox and option to propose the commentas commitment in FIG. 3, in other embodiments the interface fornon-timestamped comment 330 additionally includes options to select acategory type of the taxonomy and/or a comment type. In response toinput in the interface for non-timestamped comment 330, the computer maygenerate a non-timestamped comment record. If the option to propose as acommitment is selected, the computer may additionally generate a taskfrom the input data.

3.2 Generating a Task Record

In an embodiment, computer 102 generates a task record based on datarelated to a context in which a request to generate the task record isreceived. The context refers to a location of the selected option togenerate a task record and/or a current display of the graphical userinterface. Different contexts may include a general request to generatea task record, a request made when viewing a page relating to aparticular user, a request made when viewing a page relating to aparticular taxonomy and/or category type of the taxonomy, a request madewhen viewing particular content, a request made when viewing aparticular content, and/or a request made from a location on a webpagerelating to a user, taxonomy, category type of the taxonomy, contentitem, or comment.

For the purpose of providing a practical example, a website may includea plurality of subpages, such as pages relating to particular users,content items, taxonomies, taxonomy categories, comments, and/or commentthreads. The website may additionally include one or more staticelements that are displayed on each webpage, such as a navigation menu.The one or more static elements may include a request to generate atask. When a request to generate a task is received, computer 102 maydetermine a context of the request based on the displayed subpage on therequesting computer.

Based on the context, the computer 102 may populate one or more fieldsof a task record using metadata, subpage data, and/or data from acomment record. Populating the one or more fields of the task record mayadditionally include executing rules to determine which data to useand/or manipulating data from content metadata and/or the comment recordbefore storing the manipulated data in a task record. Methods forgenerating the task record based on context is described further herein.

In an embodiment, the computer 102 determines context based oncircumstances surrounding viewing of a content item. For example,computer 102 may store comment records which identify timestamps in avideo content item to which the comment records relate. During playbackof a video, a user may pause the video and select an option to create anew task. In response, the computer 102 may identify a current timestampof the video. If the current timestamp of the video is not identified inany comment records, the computer 102 may identify a closest commentrecord as a comment record which comprises a timestamp closest in timeto the current timestamp and/or prior to the current timestamp.Additionally and/or alternatively, if multiple comments are within athreshold value of the current timestamp, the computer 102 may displaythe multiple comments as options to the requesting computer, therebyallowing the requesting computer to establish a comment as context.

In an embodiment, the computer 102 identifies one or more comments asproposals for generating a task. For example, if the context of therequest does not identify a specific comment, the computer 102 mayexecute one or more rules to identify comments to recommend as thecontext for the task. Example implementations may select comments basedon a comment type, such as all suggestion comments, comments with ahighest number of responses, or other filtering rules. Comments may beidentified by an input context. For example, a graphical user interfacemay provide options for selecting a comment. In response to a selectionof a comment type, the computer 102 may identify comments on the contentitem with the selected comment type. Additionally or alternatively, thecomputer 102 may identify comments on other content items associatedwith a same taxonomy, category of a taxonomy, author, and/or taskrequester.

In an embodiment, the computer 102 populates a field of the task recordwith data identifying a requester of the task. For example, the computer102 may store profile data for a plurality of users. When a userprovides authenticating input, the computer 102 may associate activityon the web site with the user. When a request is received to generate atask, the computer 102 may determine that the request originated from anauthenticated user. The computer 102 may then populate a field in thetask record indicating that the request originated from theauthenticated user.

In an embodiment, the computer 102 infers a title for the task recordbased on the context. For example, if the context includes a displayedcontent item, the title for the task may be based on the title for thedisplayed content item, such as “Based on [Video Name]”. If the contextincludes a comment on a content item, data from the comment record, suchas a category type of the taxonomy of the comment record, may be used togenerate the title, such as “Working on [Taxonomy Category]”. Similarly,if the context comprises the interface displaying information relatingto a category type of the taxonomy, the category type of the taxonomytitle may be used. If the context includes a labeled series of contentitems, the title may be generated from the labeled series of items, suchas “Based on [Label Name]”.

In an embodiment, the computer 102 executes one or more rules todetermine which piece of data to use as a title. For example, ahierarchy may place emphasis on defined taxonomy categories over videotitles. Thus, if the context of the request is a comment item, thecomputer 102 may determine whether the comment record for the commentitem includes a taxonomy and/or a category type of the taxonomy. If so,the computer 102 may use the taxonomy and/or category type of thetaxonomy in the comment record to create the title. If not, the computer102 may determine whether the content item metadata for the content itemrelated to the comment record includes a taxonomy and/or category typeof the taxonomy. If so, the computer 102 may use the taxonomy and/orcategory type of the taxonomy from the content item metadata to createthe title. If not, the computer 102 may use the title of the contentitem to create the title.

Generating the title may comprise manipulating one or more data sources.For example, a title generated from a comment may utilize both thecommenter username and the title of the video, such as by inserting thecommenter username and title of the video into the “Based on Comment by[username] on [VideoTitle]”. Different phrases may also be used based onthe source of the data used to create the title. For example, if thesource is a category type of the taxonomy, the prefix of “Working on”may be added prior to the category type of the taxonomy while, if thesource is a video title, the prefix of “Based on” may be added prior tothe video title.

In an embodiment, the computer 102 infers a description for the taskbased on the context. For example, if the context of the request is aparticular comment item, the computer may populate the description ofthe task record with the comment input data. For example, if the commenttext reads “Leave more time after asking questions,” the text may becopied into the description of the task record, thus causing thedescription in the task record to read “Leave more time after askingquestions.” If the context of the request is a content item, thecomputer 102 may generate the description for the task based on thecontent item. Additionally or alternatively, the description for thetask may be left at a default value depending on the context of therequest. Thus, if a request to generate a task is received with aneutral context, such as from a home page for the website, thedescription field of the task may be left blank or with a default valueuntil additional task input is received.

Embodiments of populating the description field with the comment inputdata may be performed with audio, image, and/or audiovisual comments.For example, the description field may be populated with the audio,image, and/or audiovisual comment or a link to the audio, image, and/oraudiovisual comment. Additionally or alternatively, the computer 102 mayuse transcription techniques to transcribe comment input data into textand populate the description field with the text of the comment. Thetranscription techniques may be employed at the computer 102 or at aseparate computing system. For example, the computer 102 may send thecomment input data to an external computing system which performs thetranscription techniques and sends the transcription back to computer102.

In an embodiment, the computer 102 infers a taxonomy and/or category ofa taxonomy based on the context of the request. For example, if thecontext of the request is a comment item, the computer 102 may use thetaxonomy and/or category of the taxonomy from the comment record. If thecomment record does not include a taxonomy and/or category of ataxonomy, the computer 102 may determine whether the content itemmetadata includes a taxonomy and/or category of a taxonomy. If so, thetaxonomy and/or category of the taxonomy from the content item metadatamay be used. If not, the computer 102 may leave a default value in thetaxonomy and/or category of a taxonomy field. The computer 102 mayadditionally use taxonomy and/or category of a taxonomy data from adisplayed webpage. Thus, if the displayed webpage comprises metadataidentifying a taxonomy and/or category of a taxonomy, the computer 102may use the taxonomy and/or category of a taxonomy from the metadata.

In an embodiment, if a comment record does not include a category and/ortaxonomy of a category, the category and/or taxonomy of a category of adifferent comment record is used. For example, the computer 102 maydetermine that the comment record that serves as context for the requestto generate a task does not include a category type of the taxonomy. Inresponse, the computer 102 may identify a related comment record, suchas a referenced comment record or a most recent comment record. Forexample, if a comment record is generated as a reply to a differentcomment record, the computer 102 may identify the comment record that isthe basis for the reply. The computer 102 may use the taxonomy orcategory of a taxonomy from the related record.

In an embodiment, if a comment record does not include a taxonomy and/orcategory of a taxonomy, the computer 102 may identify taxonomies and/orcategories of a taxonomy based on the other comments on the content itemas recommended taxonomies and/or categories of a taxonomy. For example,the computer 102 may identify taxonomies and/or categories of taxonomiesfor each other comment record relating to the content item. The computer102 may identify the most frequently occurring taxonomies and/orcategories of a taxonomy. The computer 102 may include in the taskrecord recommendations of the most frequently occurring taxonomiesand/or categories of a taxonomy. Additionally or alternatively, thecomputer 102 may identify most frequently used taxonomies or categoriesof a taxonomy from other tasks generally, other tasks for the contentitem creator, other content items for the content item creator, and/orother comments generally for use as recommended taxonomies or categoriesof a taxonomy.

In an embodiment, the computer 102 infers assignment of the task basedon the context of the request. For example, if the context of therequest is a comment on a content item, the computer 102 may identify anauthor of the content item based on data stored in the comment recordand/or the content item metadata and assign the task to the author ofthe content item. Assigning the task to the author of the content itemmay include storing data in the task record identifying the author ofthe content item as the assignee of the task. Additionally, the computer102 may cause display of the visual representation of the task on acomputer associated with the assignee of the task. Thus, a first usermay generate a content item. A second user may comment on the contentitem with a request to generate a task based on the comment. Thecomputer may then generate a task record for the first user.

In an embodiment, the computer 102 infers sharing options based on thecontext of the request. For example, the computer 102 may identify anyof the requester of the task, the author of a comment on which the taskis based, or any users related to the assignee of the task, such asmanaging users. The computer 102 may store sharing data in the taskrecord, thereby indicating which users have permission to view the taskand/or progress on the task.

In an embodiment, the computer 102 includes one or more hyperlinks inthe task record. The one or more hyperlinks may include links that, whenselected, cause a computer to navigate to a page comprising a comment onwhich the task was based, a content item on which the task was based,and/or a webpage from which the request was made. Additionally oralternatively, the computer 102 may include either a content item or apointer to a comment item in the task record, thereby allowing fordisplay of the content item during display of the task.

3.3 Task Display and Editing

FIG. 4 illustrates an example display of a graphical user interfacedepicting generated task records and task record information. Display400 comprises an example display of tasks, including identification ofthe task, task types, and sorting options. Sorting options 402 includeoptions for sorting view of tasks. In FIG. 4, tasks may be sorted bystatus, category of a taxonomy, or group of content items. Task statusesmay include completed, on-going, archived, proposed and accepted,proposed and declined, or proposed and pending a response. Tasks may bedisplayed in a task timeline 404 which depicts tasks sorted based onsorting options 402 for a particular period of time. For example, tasktimeline 404 in FIG. 4 includes a completed task, an on-going task, andan accepted proposal for August of 2016.

Interface 400 additionally includes task list 406. Task list 406 mayinclude proposed, completed, or on-going tasks for a particular user.For example, in FIG. 4, task list 406 includes three proposed tasks andone on-going task. Tasks may be grouped based on sorting options 402.For example, if status is selected, all proposed tasks may be groupedtogether. If framework row is selected, all tasks comprising identifiersof the same category of a taxonomy may be grouped together.

Task 408 comprises a proposed task generated in response to a request togenerate a task based on a comment record. Task 408 includes data fromthe comment record and/or content item metadata. For instance, task 408lists the category of the taxonomy “Framework Row B from FrameworkName”, the original comment, and the context of the task request. Thecontext includes an identification of a comment, an identifier of therequester, a title of the content item, a grouping of content items towhich the content item corresponds, and a hyperlink to the content itementitled “Go to Video”. Additionally, task 408 includes an option toaccept the task or delete the task. For instance, tasks may be generatedas proposals by a party without the authority to require completion of atask, such as the person to whom the task is directed and/or asupervisor required to accept the proposal before the task is stored asan officially tracked task.

In an embodiment, the reviewer of the task may make changes to the taskbefore accepting the task. FIG. 5 illustrates an example display of agraphical user interface depicting options for completing a task withportions of the interface prepopulated based on a comment record fromwhich the task record was created. The completion of the task, asdepicted in FIG. 5, FIG. 6, FIG. 7 includes three interfaces, one forgenerating the task, one for assigning the taxonomy and category of thetaxonomy of the task, and one for setting access controls for the task.

In an embodiment, the screen display of FIG. 5 comprises a main window502 having a progress bar 504, commitment title widget 506, completiondate widget 508, calendar widget 510, description widget 512 and signalwidget 514. In an embodiment, progress bar 504 comprises a graphicalillustration of steps in a workflow involved in defining a task asrepresented in FIG. 5, FIG. 6, FIG. 7 and other displays. In anembodiment, commitment title widget 506 is programmed to receive inputspecifying a title of a commitment and, as noted below, may bepre-populated. In an embodiment, completion date widget 508 isprogrammed to receive input specifying a completion date, which also maybe pre-populated as further described. In an embodiment, calendar widget510 is programmed to receive a selection that specifies whether toautomatically transmit a calendar item or invitation to the currentuser's account; in some embodiments, input checking the calendar widget510 causes the system to transmit a calendar item as an e-mailattachment to the user account. In an embodiment, description widget 512is programmed to receive input specifying a description of steps thatthe user plans to use to focus on a specified skill. In an embodiment,signal widget 514 is programmed to receive input specifying continuingthe workflow and to store values specified in other widgets of mainwindow 502 in a record as further described.

FIG. 5 includes prepopulated fields, including a prepopulated title anddescription. The title, as depicted in FIG. 5 is generated using thecategory of the taxonomy from the context of the request to generate thetask as depicted in FIG. 4. Thus, as either the comment record orcontent item metadata identified a category of a taxonomy as FrameworkRow B, the task title is prepopulated with the category, “Framework RowB”, and additional text based on the context of using a category type ofthe taxonomy for the title, “Working on”. The description field isprepopulated with the comment input data from the originating commentrecord. Additionally, options for setting a date by which to completethe task and generating a calendar invite for the input date aredisplayed in FIG. 5.

FIG. 6 illustrates an example display of a graphical user interfacedepicting options for completing a task comprising options forspecifying an identifier of a taxonomy. In an embodiment, FIG. 6comprises a main window 602 having a progress bar 604, a taxonomy widget606, a category type of the taxonomy widget 608, a content item widget610, and a signal widget 612. In an embodiment, progress bar 504comprises a graphical illustration of steps in a workflow involved indefining a task as represented in FIG. 5, FIG. 6, FIG. 7 and otherdisplays. In an embodiment, taxonomy widget 606 is programmed to receiveinput specifying a taxonomy; in some embodiments, input into taxonomywidget 606 causes the system to populate options for category type ofthe taxonomy widget 608 with categories of the input taxonomy. In anembodiment, category type of the taxonomy widget 608 is programmed toreceive input specifying a category of a taxonomy. In an embodiment,content item widget 610 is programmed to receive input specifying acontent item. Content item widget 610 may additionally cause display ofthe content item or a link to the content item. Any of widgets 606-610may be prepopulated as described further herein. In an embodiment,signal widget 612 is programmed to receive input specifying continuingthe workflow and to store values specified in other widgets of mainwindow 602 in a record as further described.

Using the interface of FIG. 6, the task reviewer may set a taxonomy inthe “Relates to” field. In an embodiment, the drop-down menu isauto-populated with categories of the taxonomy selected in the abovefield. The interface additionally includes options for identifying acontent item on which the task is based. Depending on the context of therequest to generate the task, the taxonomy, category of the taxonomy,and content item information may be pre-filled using data from a commentrecord and/or content item metadata.

FIG. 7 illustrates an example display of a graphical user interfacedepicting options for completing a task comprising options forspecifying sharing access controls for the task. In an embodiment, FIG.7 comprises a main window 702 having a progress bar 704, invite widget706, user identifier widget 708, signal widget 710, and context-basedvisibility data 712. In an embodiment, progress bar 704 comprises agraphical illustration of steps in a workflow involved in defining atask as represented in FIG. 5, FIG. 6, FIG. 7 and other displays. In anembodiment, invite widget is programmed to receive input indicatingwhether other users should be added to the task; in some embodiments,user identifier widget 708 is only displayed if an option to add otherusers to the task is selected. In an embodiment, user identifier widget708 is programmed to receive input identifying users to be added to orremoved from the task. User identifier widget 708 may be prepopulated asdescribed further herein. In an embodiment, signal widget 710 isprogrammed to receive input specifying continuing the workflow and tostore values specified in other widgets of main window 702 in a recordas further described.

In the interface of FIG. 7, options for identifying users for specifyingsharing access controls are displayed. The interface may automaticallyinclude recommendations to provide access to the task to the proposer ofthe task, a supervisor of the recipient of the task, and/or identifiersof other users who had previously been included in the sharing optionsof prior tasks for the recipient of the task. Additionally, the searchfunction of FIG. 7 allows a user to look up and select other users withwhom the task is to be shared.

Context-based visibility data identifies access control options based onthe context of the request to generate the task. For example, if a taskis created for a video within a group of videos generated by otherusers, the other users may be given access to view the task generatedfor the video. Additionally or alternatively, if a specific user isselected as a coach for a content item, group of content items, user, orgroup of users, the specific user may have access to details of thetask.

In an embodiment, an interface may include a plurality of options forone or more aspects of a task based on the context of the request forthe task and/or one or more other factors.

FIG. 8 illustrates an example display of a graphical user interfacedepicting options for completing a task comprising suggested categorieswithin a taxonomy. In an embodiment, FIG. 8 comprises a main window 802having a progress bar 804, a taxonomy widget 806, a category type of thetaxonomy widget 808, a content item widget 810, and a signal widget 812.In an embodiment, progress bar 804 comprises a graphical illustration ofsteps in a workflow involved in defining a task as represented in FIG.8, FIG. 5, FIG. 7 and other displays. In an embodiment, taxonomy widget806 is programmed to receive input specifying a taxonomy. In anembodiment, category type of the taxonomy widget 808 is programmed toreceive input specifying a category of a taxonomy. Category type of thetaxonomy widget 808 may be configured to display recommended categoriesof a taxonomy based on a selected taxonomy and one or more additionalfactors. In an embodiment, content item widget 810 is programmed toreceive input specifying a content item. Content item widget 810 mayadditionally cause display of the content item or a link to the contentitem. In an embodiment, signal widget 812 is programmed to receive inputspecifying continuing the workflow and to store values specified inother widgets of main window 802 in a record as further described.

In FIG. 8, the taxonomy of “Best Practices” has been selected, eitherthrough the interface of FIG. 8 or based on comment records or contentitem metadata. As a category of the taxonomy has not been selected, FIG.8 includes recommendations of categories within the selected taxonomy.As describe in Section 3.2, the suggestions may be based on differentcomment records for the same content item, different comment records forother content items, frequent selections of categories in the frameworkby the recipient of the task, and/or frequent selections of categoriesin the framework by one or more other users.

Implementation Example—Hardware Overview

According to one embodiment, the techniques described herein areimplemented by at least one computing device. The techniques may beimplemented in whole or in part using a combination of at least oneserver computer and/or other computing devices that are coupled using anetwork, such as a packet data network. The computing devices may behard-wired to perform the techniques, or may include digital electronicdevices such as at least one application-specific integrated circuit(ASIC) or field programmable gate array (FPGA) that is persistentlyprogrammed to perform the techniques, or may include at least onegeneral purpose hardware processor programmed to perform the techniquespursuant to program instructions in firmware, memory, other storage, ora combination. Such computing devices may also combine custom hard-wiredlogic, ASICs, or FPGAs with custom programming to accomplish thedescribed techniques. The computing devices may be server computers,workstations, personal computers, portable computer systems, handhelddevices, mobile computing devices, wearable devices, body mounted orimplantable devices, smartphones, smart appliances, internetworkingdevices, autonomous or semi-autonomous devices such as robots orunmanned ground or aerial vehicles, any other electronic device thatincorporates hard-wired and/or program logic to implement the describedtechniques, one or more virtual computing machines or instances in adata center, and/or a network of server computers and/or personalcomputers.

FIG. 9 is a block diagram that illustrates an example computer systemwith which an embodiment may be implemented. In the example of FIG. 9, acomputer system 900 and instructions for implementing the disclosedtechnologies in hardware, software, or a combination of hardware andsoftware, are represented schematically, for example as boxes andcircles, at the same level of detail that is commonly used by persons ofordinary skill in the art to which this disclosure pertains forcommunicating about computer architecture and computer systemsimplementations.

Computer system 900 includes an input/output (I/O) subsystem 902 whichmay include a bus and/or other communication mechanism(s) forcommunicating information and/or instructions between the components ofthe computer system 900 over electronic signal paths. The I/O subsystem902 may include an I/O controller, a memory controller and at least oneI/O port. The electronic signal paths are represented schematically inthe drawings, for example as lines, unidirectional arrows, orbidirectional arrows.

At least one hardware processor 904 is coupled to I/O subsystem 902 forprocessing information and instructions. Hardware processor 904 mayinclude, for example, a general-purpose microprocessor ormicrocontroller and/or a special-purpose microprocessor such as anembedded system or a graphics processing unit (GPU) or a digital signalprocessor or ARM processor. Processor 904 may comprise an integratedarithmetic logic unit (ALU) or may be coupled to a separate ALU.

Computer system 900 includes one or more units of memory 906, such as amain memory, which is coupled to I/O subsystem 902 for electronicallydigitally storing data and instructions to be executed by processor 904.Memory 906 may include volatile memory such as various forms ofrandom-access memory (RAM) or other dynamic storage device. Memory 906also may be used for storing temporary variables or other intermediateinformation during execution of instructions to be executed by processor904. Such instructions, when stored in non-transitory computer-readablestorage media accessible to processor 904, can render computer system900 into a special-purpose machine that is customized to perform theoperations specified in the instructions.

Computer system 900 further includes non-volatile memory such as readonly memory (ROM) 908 or other static storage device coupled to I/Osubsystem 902 for storing information and instructions for processor904. The ROM 908 may include various forms of programmable ROM (PROM)such as erasable PROM (EPROM) or electrically erasable PROM (EEPROM). Aunit of persistent storage 910 may include various forms of non-volatileRAM (NVRAM), such as FLASH memory, or solid-state storage, magnetic diskor optical disk such as CD-ROM or DVD-ROM, and may be coupled to I/Osubsystem 902 for storing information and instructions. Storage 910 isan example of a non-transitory computer-readable medium that may be usedto store instructions and data which when executed by the processor 904cause performing computer-implemented methods to execute the techniquesherein.

The instructions in memory 906, ROM 908 or storage 910 may comprise oneor more sets of instructions that are organized as modules, methods,objects, functions, routines, or calls. The instructions may beorganized as one or more computer programs, operating system services,or application programs including mobile apps. The instructions maycomprise an operating system and/or system software; one or morelibraries to support multimedia, programming or other functions; dataprotocol instructions or stacks to implement TCP/IP, HTTP or othercommunication protocols; file format processing instructions to parse orrender files coded using HTML, XML, JPEG, MPEG, WebM, GIF or PNG; userinterface instructions to render or interpret commands for a graphicaluser interface (GUI), command-line interface or text user interface;application software such as an office suite, internet accessapplications, design and manufacturing applications, graphicsapplications, audio applications, software engineering applications,educational applications, games or miscellaneous applications. Theinstructions may implement a web server, web application server or webclient. The instructions may be organized as a presentation layer,application layer and data storage layer such as a relational databasesystem using structured query language (SQL) or no SQL, an object store,a graph database, a flat file system or other data storage.

Computer system 900 may be coupled via I/O subsystem 902 to at least oneoutput device 912. In one embodiment, output device 912 is a digitalcomputer display. Examples of a display that may be used in variousembodiments include a touch screen display or a light-emitting diode(LED) display or a liquid crystal display (LCD) or an e-paper display.Computer system 900 may include other type(s) of output devices 912,alternatively or in addition to a display device. Examples of otheroutput devices 912 include printers, ticket printers, plotters,projectors, sound cards or video cards, speakers, buzzers orpiezoelectric devices or other audible devices, lamps or LED or LCDindicators, haptic devices, actuators or servos.

At least one input device 914 is coupled to I/O subsystem 902 forcommunicating signals, data, command selections or gestures to processor904. Examples of input devices 914 include touch screens, microphones,still and video digital cameras, alphanumeric and other keys, keypads,keyboards, graphics tablets, image scanners, joysticks, clocks,switches, buttons, dials, slides, and/or various types of sensors suchas force sensors, motion sensors, heat sensors, accelerometers,gyroscopes, and inertial measurement unit (IMU) sensors and/or varioustypes of transceivers such as wireless, such as cellular or Wi-Fi, radiofrequency (RF) or infrared (IR) transceivers and Global PositioningSystem (GPS) transceivers.

Another type of input device is a control device 916, which may performcursor control or other automated control functions such as navigationin a graphical interface on a display screen, alternatively or inaddition to input functions. Control device 916 may be a touchpad, amouse, a trackball, or cursor direction keys for communicating directioninformation and command selections to processor 904 and for controllingcursor movement on display 912. The input device may have at least twodegrees of freedom in two axes, a first axis (e.g., x) and a second axis(e.g., y), that allows the device to specify positions in a plane.Another type of input device is a wired, wireless, or optical controldevice such as a joystick, wand, console, steering wheel, pedal,gearshift mechanism or other type of control device. An input device 914may include a combination of multiple different input devices, such as avideo camera and a depth sensor.

In another embodiment, computer system 900 may comprise an internet ofthings (IoT) device in which one or more of the output device 912, inputdevice 914, and control device 916 are omitted. Or, in such anembodiment, the input device 914 may comprise one or more cameras,motion detectors, thermometers, microphones, seismic detectors, othersensors or detectors, measurement devices or encoders and the outputdevice 912 may comprise a special-purpose display such as a single-lineLED or LCD display, one or more indicators, a display panel, a meter, avalve, a solenoid, an actuator or a servo.

When computer system 900 is a mobile computing device, input device 914may comprise a global positioning system (GPS) receiver coupled to a GPSmodule that is capable of triangulating to a plurality of GPSsatellites, determining and generating geo-location or position datasuch as latitude-longitude values for a geophysical location of thecomputer system 900. Output device 912 may include hardware, software,firmware and interfaces for generating position reporting packets,notifications, pulse or heartbeat signals, or other recurring datatransmissions that specify a position of the computer system 900, aloneor in combination with other application-specific data, directed towardhost 924 or server 930.

Computer system 900 may implement the techniques described herein usingcustomized hard-wired logic, at least one ASIC or FPGA, firmware and/orprogram instructions or logic which when loaded and used or executed incombination with the computer system causes or programs the computersystem to operate as a special-purpose machine. According to oneembodiment, the techniques herein are performed by computer system 900in response to processor 904 executing at least one sequence of at leastone instruction contained in main memory 906. Such instructions may beread into main memory 906 from another storage medium, such as storage910. Execution of the sequences of instructions contained in main memory906 causes processor 904 to perform the process steps described herein.In alternative embodiments, hard-wired circuitry may be used in place ofor in combination with software instructions.

The term “storage media” as used herein refers to any non-transitorymedia that store data and/or instructions that cause a machine tooperation in a specific fashion. Such storage media may comprisenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical or magnetic disks, such as storage 910. Volatilemedia includes dynamic memory, such as memory 906. Common forms ofstorage media include, for example, a hard disk, solid state drive,flash drive, magnetic data storage medium, any optical or physical datastorage medium, memory chip, or the like.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise a bus of I/O subsystem 902. Transmission media canalso take the form of acoustic or light waves, such as those generatedduring radio-wave and infra-red data communications.

Various forms of media may be involved in carrying at least one sequenceof at least one instruction to processor 904 for execution. For example,the instructions may initially be carried on a magnetic disk orsolid-state drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over acommunication link such as a fiber optic or coaxial cable or telephoneline using a modem. A modem or router local to computer system 900 canreceive the data on the communication link and convert the data to aformat that can be read by computer system 900. For instance, a receiversuch as a radio frequency antenna or an infrared detector can receivethe data carried in a wireless or optical signal and appropriatecircuitry can provide the data to I/O subsystem 902 such as place thedata on a bus. I/O subsystem 902 carries the data to memory 906, fromwhich processor 904 retrieves and executes the instructions. Theinstructions received by memory 906 may optionally be stored on storage910 either before or after execution by processor 904.

Computer system 900 also includes a communication interface 918 coupledto bus 902. Communication interface 918 provides a two-way datacommunication coupling to network link(s) 920 that are directly orindirectly connected to at least one communication networks, such as anetwork 922 or a public or private cloud on the Internet. For example,communication interface 918 may be an Ethernet networking interface,integrated-services digital network (ISDN) card, cable modem, satellitemodem, or a modem to provide a data communication connection to acorresponding type of communications line, for example an Ethernet cableor a metal cable of any kind or a fiber-optic line or a telephone line.Network 922 broadly represents a local area network (LAN), wide-areanetwork (WAN), campus network, internetwork or any combination thereof.Communication interface 918 may comprise a LAN card to provide a datacommunication connection to a compatible LAN, or a cellularradiotelephone interface that is wired to send or receive cellular dataaccording to cellular radiotelephone wireless networking standards, or asatellite radio interface that is wired to send or receive digital dataaccording to satellite wireless networking standards. In any suchimplementation, communication interface 918 sends and receiveselectrical, electromagnetic or optical signals over signal paths thatcarry digital data streams representing various types of information.

Network link 920 typically provides electrical, electromagnetic, oroptical data communication directly or through at least one network toother data devices, using, for example, satellite, cellular, Wi-Fi, orBLUETOOTH technology. For example, network link 920 may provide aconnection through a network 922 to a host computer 924.

Furthermore, network link 920 may provide a connection through network922 or to other computing devices via internetworking devices and/orcomputers that are operated by an Internet Service Provider (ISP) 926.ISP 926 provides data communication services through a world-wide packetdata communication network represented as internet 928. A servercomputer 930 may be coupled to internet 928. Server 930 broadlyrepresents any computer, data center, virtual machine or virtualcomputing instance with or without a hypervisor, or computer executing acontainerized program system such as DOCKER or KUBERNETES. Server 930may represent an electronic digital service that is implemented usingmore than one computer or instance and that is accessed and used bytransmitting web services requests, uniform resource locator (URL)strings with parameters in HTTP payloads, API calls, app services calls,or other service calls. Computer system 900 and server 930 may formelements of a distributed computing system that includes othercomputers, a processing cluster, server farm or other organization ofcomputers that cooperate to perform tasks or execute applications orservices. Server 930 may comprise one or more sets of instructions thatare organized as modules, methods, objects, functions, routines, orcalls. The instructions may be organized as one or more computerprograms, operating system services, or application programs includingmobile apps. The instructions may comprise an operating system and/orsystem software; one or more libraries to support multimedia,programming or other functions; data protocol instructions or stacks toimplement TCP/IP, HTTP or other communication protocols; file formatprocessing instructions to parse or render files coded using HTML, XML,JPEG, MPEG, WebM, GIF or PNG; user interface instructions to render orinterpret commands for a graphical user interface (GUI), command-lineinterface or text user interface; application software such as an officesuite, internet access applications, design and manufacturingapplications, graphics applications, audio applications, softwareengineering applications, educational applications, games ormiscellaneous applications. Server 930 may comprise a web applicationserver that hosts a presentation layer, application layer and datastorage layer such as a relational database system using structuredquery language (SQL) or no SQL, an object store, a graph database, aflat file system or other data storage.

Computer system 900 can send messages and receive data and instructions,including program code, through the network(s), network link 920 andcommunication interface 918. In the Internet example, a server 930 mighttransmit a requested code for an application program through Internet928, ISP 926, local network 922 and communication interface 918. Thereceived code may be executed by processor 904 as it is received, and/orstored in storage 910, or other non-volatile storage for laterexecution.

The execution of instructions as described in this section may implementa process in the form of an instance of a computer program that is beingexecuted, and consisting of program code and its current activity.Depending on the operating system (OS), a process may be made up ofmultiple threads of execution that execute instructions concurrently. Inthis context, a computer program is a passive collection ofinstructions, while a process may be the actual execution of thoseinstructions. Several processes may be associated with the same program;for example, opening up several instances of the same program oftenmeans more than one process is being executed. Multitasking may beimplemented to allow multiple processes to share processor 904. Whileeach processor 904 or core of the processor executes a single task at atime, computer system 900 may be programmed to implement multitasking toallow each processor to switch between tasks that are being executedwithout having to wait for each task to finish. In an embodiment,switches may be performed when tasks perform input/output operations,when a task indicates that it can be switched, or on hardwareinterrupts. Time-sharing may be implemented to allow fast response forinteractive user applications by rapidly performing context switches toprovide the appearance of concurrent execution of multiple processessimultaneously. In an embodiment, for security and reliability, anoperating system may prevent direct communication between independentprocesses, providing strictly mediated and controlled inter-processcommunication functionality.

What is claimed is:
 1. A data processing method comprising: a firstcomputer obtaining access to a digitally stored content item, thecontent item being stored with content item metadata identifying one ormore of a creator of the content item, a title of the content item,description of the content item, content type of the content item,sharing settings of the content item, a taxonomy of the content item, ora category type of the taxonomy of the content item; storing, at thefirst computer, a comment record comprising an identifier of the contentitem and comment input data; causing displaying, on a third computer,the content item and a comment item comprising the comment input dataand an option to generate a task for the creator of the content itemfrom the comment item; receiving, at the first computer, a selection ofthe option to generate the task for the creator of the content item fromthe comment item and, in response, generating and storing a task recordbased, at least in part, on the content item metadata, the task recordcomprising an identifier of the task and the identifier of the contentitem and the comment input data from the comment item; causing display,on a second computer, a graphical representation of the task based, atleast in part, on the task record; wherein the method is performed usingone or more processors.
 2. The method of claim 1, further comprising:storing, in the comment record, an identifier of a taxonomy for thecomment item; in response to the identifier of the taxonomy for thecomment item being stored in the comment record, storing the identifierof the taxonomy for the comment item in the task record.
 3. The methodof claim 2 wherein the taxonomy is any of a framework and a rubricconfigured for use in evaluating an effectiveness of an educator.
 4. Themethod of claim 2, further comprising: storing, in the comment record, acategory type of the taxonomy for the particular comment item; inresponse to the category type of a taxonomy for the particular commentitem being stored in the first record, storing the category type of thetaxonomy for the particular comment item in the task record.
 5. Themethod of claim 1, further comprising: determining that the commentrecord does not comprise data identifying a category type of a taxonomyfor the particular comment item; identifying a second comment recordcomprising an identifier of the content item and a particular categorytype of a taxonomy for the second comment item; in response to thecomment record not comprising data identifying a category type of ataxonomy for the particular content item, storing the particularcategory type for the second comment item in the task record.
 6. Themethod of claim 1, wherein generating the task record comprises:executing one or more rules to identify data from one or more of thecontent item metadata or the comment record for populating one or morefields in the task record; populating the one or more field in the taskrecord with the identified data; manipulating the data in the one ormore fields for display in the graphical representation of the task onthe second computing device or for storage in the task record.
 7. Themethod of claim 6: wherein executing the one or more rules to identifydata from one or more of the content item metadata or the comment recordcomprises: determining whether the comment record comprises a categorytype of a taxonomy for the particular comment item; in response todetermining that the comment record comprises a category type, selectingthe category type from the comment record for a title data field of thetask record; in response to determining that the comment record does notcomprise a category type of a taxonomy, determining whether the contentitem metadata comprises a category type of a taxonomy for the particularcontent item; in response to determining that the content item metadatacomprises a category type, selecting the category type from the contentitem metadata for the title data field; in response to determining thatthe content item metadata does not comprise a category type, selecting atitle of the content item from the content item metadata as for thetitle data field; wherein manipulating the data in the one or morefields comprises generating a title based on the title data field and asource of data in the title data field.
 8. The method of claim 1,further comprising: causing displaying, on the second computer, a taskgeneration interface comprising a plurality of editable options;prepopulating one or more of the plurality of editable options with thecomment input data and the identifier of the content item; receivingadditional task input data and a request to generate the task from thesecond computer and, in response, generating and storing the taskrecord, the task record additionally comprising the additional taskinput data.
 9. The method of claim 8, further comprising: determiningthat the comment record does not comprise data identifying a categorytype of a taxonomy for the particular comment item; identifying aplurality of second comment records comprising an identifier of thecontent item, comment input data for a plurality of second commentitems, and a plurality of taxonomies or category types of a taxonomy forthe plurality of second comment items; displaying, in the taskgeneration interface, a plurality of selectable options, each of whichcorresponding to a taxonomy of the plurality of taxonomies or categorytype of the plurality of category types of the taxonomy; receiving aselection of a particular selectable option corresponding to aparticular taxonomy and category type and, in response, storing thetaxonomy and category type of the taxonomy for the particular commentitem in the task record.
 10. The method of claim 1, wherein the commentinput data comprises any of text, image, a video resource or video file,or an audio resource or audio file.
 11. A computer system comprising:one or more processors; a memory storing instructions which, whenexecuted by the one or more processors, cause performance of: obtainingaccess to a digitally stored content item, the content item being storedwith content item metadata identifying one or more of a creator of thecontent item, a title of the content item, description of the contentitem, content type of the content item, sharing settings of the contentitem, a taxonomy of the content item, or a category type of the taxonomyof the content item; storing a comment record comprising an identifierof the content item and comment input data; causing displaying thecontent item and a comment item comprising the comment input data and anoption to generate a task for the creator of the content item from thecomment item; receiving a selection of the option to generate the taskfor the creator of the content item from the comment item and, inresponse, generating and storing a task record based, at least in part,on the content item metadata, the task record comprising an identifierof the task and the identifier of the content item; causing display of agraphical representation of the task based, at least in part, on thetask record.
 12. The system of claim 11, wherein the instructions, whenexecuted by the one or more processors, further cause performance of:storing, in the comment record, an identifier of a taxonomy for thecomment item; in response to the identifier of the taxonomy for thecomment item being stored in the comment record, storing the identifierof the taxonomy for the comment item in the task record.
 13. The systemof claim 12 wherein the taxonomy is any of a framework and a rubricconfigured for use in evaluating an effectiveness of an educator. 14.The system of claim 12, wherein the instructions, when executed by theone or more processors, further cause performance of: storing, in thecomment record, a category type of the taxonomy for the particularcomment item; in response to the category type of the taxonomy for theparticular comment item being stored in the first record, storing thecategory type of the taxonomy for the particular comment item in thetask record.
 15. The system of claim 11, wherein the instructions, whenexecuted by the one or more processors, further cause performance of:determining that the comment record does not comprise data identifying acategory type of a taxonomy for the particular comment item; identifyinga second comment record comprising an identifier of the content item anda particular category type of a taxonomy for the second comment item; inresponse to the comment record not comprising data identifying acategory type of a taxonomy for the particular content item, storing theparticular category type for the second comment item in the task record.16. The system of claim 11, wherein generating the task recordcomprises: executing one or more rules to identify data from one or moreof the content item metadata or the comment record for populating one ormore fields in the task record; populating the one or more field in thetask record with the identified data; manipulating the data in the oneor more fields for display in the graphical representation of the taskon the second computing device or for storage in the task record. 17.The system of claim 16: wherein executing the one or more rules toidentify data from one or more of the content item metadata or thecomment record comprises: determining whether the comment recordcomprises a category type of a taxonomy for the particular comment item;in response to determining that the comment record comprises a categorytype, selecting the category type from the comment record for a titledata field of the task record; in response to determining that thecomment record does not comprise a category type of a taxonomy,determining whether the content item metadata comprises a category typeof a taxonomy for the particular content item; in response todetermining that the content item metadata comprises a category type,selecting the category type from the content item metadata for the titledata field; in response to determining that the content item metadatadoes not comprise a category type, selecting a title of the content itemfrom the content item metadata as for the title data field; whereinmanipulating the data in the one or more fields comprises generating atitle based on the title data field and a source of data in the titledata field.
 18. The system of claim 11, wherein the instructions, whenexecuted by the one or more processors, further cause performance of:causing displaying a task generation interface comprising a plurality ofeditable options; prepopulating one or more of the plurality of editableoptions with the comment input data and the identifier of the contentitem; receiving additional task input data and a request to generate thetask from the second computer and, in response, generating and storingthe task record, the task record additionally comprising the additionaltask input data.
 19. The system of claim 18, wherein the instructions,when executed by the one or more processors, further cause performanceof: determining that the comment record does not comprise dataidentifying a category type of a taxonomy for the particular commentitem; identifying a plurality of second comment records comprising anidentifier of the content item, comment input data for a plurality ofsecond comment items, and a plurality of taxonomies or category types ofa taxonomy for the plurality of second comment items; displaying, in thetask generation interface, a plurality of selectable options, each ofwhich corresponding to a taxonomy of the plurality of taxonomies orcategory type of the plurality of category types of the taxonomy;receiving a selection of a particular selectable option corresponding toa particular taxonomy and category type and, in response, storing thetaxonomy and category type of the taxonomy for the particular commentitem in the task record.
 20. The system of claim 11 wherein receivingthe comment input data comprises any of text, image, a video resource orvideo file, or an audio resource or audio file.